package utils

import (
	"fmt"
	"os"
)

func WriteFile(folderName string, channelKey string, data []byte) error {
	basePath := fmt.Sprintf("E:\\GoCode\\fiber-ci\\static\\%s", folderName)
	// 检查文件夹是否存在
	if _, err := os.Stat(basePath); os.IsNotExist(err) {
		// 如果不存在，创建文件夹
		err := os.MkdirAll(basePath, 0755)
		if err != nil {
			fmt.Println(err.Error())
		}
	}
	filePath := fmt.Sprintf("%s\\%s.json", basePath, channelKey)
	err := DelFile(filePath)
	if err != nil {
		return err
	}
	file, err := os.OpenFile(filePath, os.O_WRONLY|os.O_CREATE, 0666)
	if err != nil {
		return err
	}
	defer file.Close()
	_, err = file.Write(data)
	if err != nil {
		return err
	}

	return nil
}

// DelFile 会删除已存在的文件，然后创建新文件并写入数据
func DelFile(filePath string) error {
	if _, err := os.Stat(filePath); err == nil {
		// 文件存在，删除它
		if err := os.Remove(filePath); err != nil {
			return err
		}
	}
	return nil
}
